Recurring Tasks এবং Cron Jobs

Mobile App Development - মিটিয়র (Meteor) - Background Jobs এবং Task Scheduling
235

Recurring Tasks:

Recurring tasks (বা পুনরাবৃত্তি কাজ) এমন কাজ যা নিয়মিত সময় পর পর চলতে থাকে, যেমন প্রতিদিন, প্রতি সপ্তাহে, প্রতি মাসে বা নির্দিষ্ট কোনো সময় পর পর কিছু কাজের সঞ্চালন। অনেক অ্যাপ্লিকেশনে এমন কাজগুলি প্রয়োজন, যেমন:

  • দৈনিক ব্যাকআপ
  • ইমেইল রিপোর্ট পাঠানো
  • ডাটাবেস পরিষ্কার করা
  • ফাইল বা লগ ফাইল আর্কাইভ করা

এই ধরনের কাজগুলি স্বয়ংক্রিয়ভাবে চালানোর জন্য Cron Jobs ব্যবহৃত হয়।


Cron Jobs:

Cron একটি ইউনিক্স-ভিত্তিক কমান্ড লাইন ইউটিলিটি, যা নির্দিষ্ট সময়ে একটি স্ক্রিপ্ট বা প্রোগ্রাম চালানোর জন্য ব্যবহৃত হয়। এটি periodic বা scheduled tasks পরিচালনার জন্য ব্যবহৃত হয়। যখন আপনি একটি নির্দিষ্ট সময় বা সময়ের মধ্যে কাজ করতে চান, তখন আপনি cron jobs ব্যবহার করেন।

Cron Jobs কীভাবে কাজ করে:

একটি cron job সাধারণত একটি crontab file তে নির্দিষ্ট সময় এবং কাজের তালিকা থাকে। এই ফাইলটি সিস্টেমের cron ডিমনের মাধ্যমে স্ক্যান করা হয় এবং নির্দিষ্ট সময় বা নির্দিষ্ট ঘটনাতে কাজটি চালানো হয়।

Crontab Syntax:

Crontab ফাইলে প্রতিটি লাইন একটি cron job নির্দেশ করে এবং এর সিঙ্কট্যাক্স হল:

* * * * * /path/to/command
│ │ │ │ │
│ │ │ │ └─── Day of week (0 - 7) (Sunday = 0 or 7)
│ │ │ └───── Month (1 - 12)
│ │ └─────── Day of month (1 - 31)
│ └───────── Hour (0 - 23)
└─────────── Minute (0 - 59)

উদাহরণ:

  1. Cron job to run every day at midnight:

    0 0 * * * /path/to/script.sh
    

    এটি প্রতিদিন ১২:০০ AMscript.sh রান করবে।

  2. Cron job to run every Monday at 5 AM:

    0 5 * * 1 /path/to/weekly_task.sh
    

    এটি প্রতি সোমবার সকাল ৫:০০ AMweekly_task.sh রান করবে।

  3. Cron job to run every 15 minutes:

    */15 * * * * /path/to/script.sh
    

    এটি প্রতি ১৫ মিনিটে script.sh রান করবে।

Common Cron Time Formats:

Time FieldValueDescription
Minute0-590 = exact minute
Hour0-230 = midnight
Day of month1-311 = 1st day of the month
Month1-121 = January
Day of week0-7 (Sun-Sat)0 or 7 = Sunday

Using Cron Jobs in Linux/Unix:

Cron jobs চালানোর জন্য, সাধারণত আপনাকে crontab ফাইলটি এডিট করতে হয়। crontab এডিট করতে:

  1. Crontab এডিট করুন:

    crontab -e
    
  2. Cron job যোগ করুন:

    ফাইলের শেষে আপনি আপনার কাজের সিডিউল যোগ করতে পারবেন।

    উদাহরণস্বরূপ:

    30 2 * * * /usr/bin/python3 /home/user/scripts/backup.py
    

    এটি প্রতি রাত ২:৩০ AMbackup.py স্ক্রিপ্টটি চালাবে।

  3. Cron job তালিকা দেখতে:

    crontab -l
    
  4. Cron job মুছে ফেলতে:

    crontab -r
    

Recurring Tasks in Applications

অ্যাপ্লিকেশনগুলিতে, recurring tasks চালানোর জন্য Cron jobs ব্যবহারের পাশাপাশি বিভিন্ন scheduling libraries বা task schedulers ব্যবহৃত হয়। অনেক ভাষায়, যেমন Node.js, Python, PHP, এবং Ruby, বিভিন্ন লাইব্রেরি বা প্যাকেজ রয়েছে যা background tasks বা recurring tasks চালানোর জন্য কাজ করে। উদাহরণস্বরূপ:

  1. Node.js: node-cron প্যাকেজ ব্যবহার করে।
  2. Python: APScheduler বা Celery ব্যবহৃত হয়।
  3. Ruby: Sidekiq বা rake ব্যবহৃত হয়।

Step 1: Node.js with node-cron

Node.jsCron jobs ব্যবহার করার জন্য আপনি node-cron প্যাকেজ ব্যবহার করতে পারেন।

Installation:

npm install node-cron

Example:

const cron = require('node-cron');

// Run a task every minute
cron.schedule('* * * * *', () => {
  console.log('Task is running every minute');
});

// Run a task every day at 2 AM
cron.schedule('0 2 * * *', () => {
  console.log('Running task at 2 AM daily');
});

Step 2: Python with APScheduler

Python এ APScheduler প্যাকেজ ব্যবহার করে আপনি পুনরাবৃত্তি কাজগুলো নির্ধারণ করতে পারেন।

Installation:

pip install apscheduler

Example:

from apscheduler.schedulers.background import BackgroundScheduler
import time

def job():
    print("Task is running every 2 minutes")

scheduler = BackgroundScheduler()
scheduler.add_job(job, 'interval', minutes=2)

scheduler.start()

try:
    # To keep the script running
    while True:
        time.sleep(2)
except (KeyboardInterrupt, SystemExit):
    scheduler.shutdown()

Step 3: Using Cron Jobs in Laravel (PHP)

Laravel-এ recurring tasks বা cron jobs সেটআপ করা অনেক সহজ।

Example:

  1. Scheduled command তৈরি করুন:

    php artisan make:command DailyReport
    
  2. Command ফাইলটি এডিট করুন:

    app/Console/Commands/DailyReport.php ফাইলে গিয়ে আপনার কোড লিখুন:

    public function handle()
    {
        \Log::info('Running daily report task');
    }
    
  3. Kernel ফাইলে schedule করুন:

    app/Console/Kernel.php ফাইলে গিয়ে সিডিউল করুন:

    protected function schedule(Schedule $schedule)
    {
        $schedule->command('report:daily')->dailyAt('02:00');
    }
    
  4. Cron Job রান করার জন্য:

    আপনার server তে crontab এ এই কমান্ডটি অ্যাড করুন:

    * * * * * cd /path/to/your/project && php artisan schedule:run >> /dev/null 2>&1
    

সারাংশ

Recurring tasks বা cron jobs হল সিস্টেমে নির্দিষ্ট সময়ে নির্দিষ্ট কাজ করার জন্য ব্যবহৃত সময়সীমাবদ্ধ কমান্ড বা স্ক্রিপ্ট। Cron jobs ব্যবহার করে আপনি যেমন ব্যাকআপ নিতে পারেন, রিপোর্ট পাঠাতে পারেন বা সিস্টেম মেইনটেন্যান্স করতে পারেন। আপনার সিস্টেমের কার্যকারিতা বাড়ানোর জন্য এই ধরনের স্বয়ংক্রিয় কাজগুলো খুবই গুরুত্বপূর্ণ।

আপনি Node.js, Python, Laravel বা অন্যান্য প্ল্যাটফর্মে cron jobs ব্যবহার করে সিস্টেমের কাজগুলো স্বয়ংক্রিয় করতে পারেন এবং অ্যাপ্লিকেশন বা সিস্টেমের রিয়েল-টাইম কার্যক্রমে উন্নতি আনতে পারেন।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...